[1] 745 2666 37737 80488 212258 213766
[1] 91276.67
casos <- notidy[notidy$key == "cases", ]
poblacion <- notidy[notidy$key == "population", ]
casos$value / poblacion$value * 100[1] 0.00372741 0.01294466 0.02193930 0.04612363 0.01667495 0.01669488
[1] 745 2666 37737 80488 212258 213766
[1] 91276.67
[1] 0.00372741 0.01294466 0.02193930 0.04612363 0.01667495 0.01669488
data: Tabla de datos a transformar.
id_cols: Conjunto de columnas que identifican cada observación. Por defecto utiliza todas las columnas, excepto aquellas que se encuentran en los parámetros names_from y values_from.
names_from: Describe la columna (o columnas) que se va a separar.
datos <- data.frame(
id = c("A", "A", "A", "A", "B", "B", "B", "B"),
pais = c("Costa Rica", "Colombia", "Costa Rica", "Honduras", "Colombia", "Colombia", "Honduras", "Honduras"),
dia = c("dia1", "dia2", "dia3", "dia4", "dia1", "dia2", "dia3", "dia4"),
puntos = c(10, 20, 25, 10, 10, 50, 50, 25)
)
datosdatos <- data.frame(
id = c("A", "A", "A", "A", "B", "B", "B", "B"),
pais = c("Costa Rica", "Colombia", "Costa Rica", "Honduras", "Colombia", "Colombia", "Honduras", "Honduras"),
dia = c("dia1", "dia2", "dia3", "dia4", "dia1", "dia2", "dia3", "dia4"),
puntos = c(10, 20, 25, 10, 10, 50, 50, 25)
)
datosdatos <- data.frame(
id = c("A", "A", "A", "A", "B", "B", "B", "B"),
pais = c("Costa Rica", "Colombia", "Costa Rica", "Honduras", "Colombia", "Colombia", "Honduras", "Honduras"),
dia = c("dia1", "dia2", "dia3", "dia4", "dia1", "dia2", "dia3", "dia4"),
puntos = c(10, 20, 25, 10, 10, 50, 50, 25),
valor = c(100, 200, 250, 100, 100, 500, 500, 250)
)
datosdatos <- data.frame(
id = c("A", "A", "A", "A", "B", "B", "B", "B"),
pais = c("Costa Rica", "Colombia", "Costa Rica", "Honduras", "Colombia", "Colombia", "Honduras", "Honduras"),
dia = c("dia1", "dia2", "dia3", "dia4", "dia1", "dia2", "dia3", "dia4"),
puntos = c(10, 20, 25, 10, 10, 50, 50, 25)
)
datosdatos <- data.frame(
id = c("A", "A", "A", "A", "B", "B", "B", "B"),
pais = c("Costa Rica", "Colombia", "Costa Rica", "Honduras", "Colombia", "Colombia", "Honduras", "Honduras"),
dia = c("dia1", "dia2", "dia3", "dia4", "dia1", "dia2", "dia3", "dia4"),
puntos = c(10, 20, 25, 10, 10, 50, 50, 25)
)
datosWarning: Values in `puntos` are not uniquely identified; output will contain list-cols.
* Use `values_fn = list(puntos = list)` to suppress this warning.
* Use `values_fn = list(puntos = length)` to identify where the duplicates arise
* Use `values_fn = list(puntos = summary_fun)` to summarise duplicates
pivot_wider(
datos,
id_cols = id,
names_from = pais,
values_from = puntos,
values_fn = list(puntos = sum)
)data: Tabla de datos a transformar.
cols: Describe las columnas que se van a unir.
names_to: Texto que se utilizará para dar nombre a la nueva columna formada con el nombre de las columnas. Puede ser un vector de nombres si se provee el parámetro names_sep.
data: Tabla de datos a transformar.
col: Describe la columna que se va a separar.
into: Nombre de las nuevas columnas.
datos <- data.frame(
pais = c("Espana", "Nicaragua", "Chile"),
coordenadas = c("39.3262345,-4.8380649", "12.6090157,-85.2936911", "-31.7613365,-71.3187697,755776.4")
)
datosseparate(
datos,
col = coordenadas,
into = c("latitud", "longitud"),
sep = ",",
extra = "warn" # Valor por defecto
)Warning: Expected 2 pieces. Additional pieces discarded in 1 rows [3].
datos <- data.frame(
pais = c("Espana", "Nicaragua", "Chile"),
coordenadas = c("39.3262345,-4.8380649", "12.6090157,-85.2936911", "-31.7613365")
)
datosseparate(
datos,
col = coordenadas,
into = c("latitud", "longitud"),
sep = ",",
fill = "warn" # Valor por defecto
)Warning: Expected 2 pieces. Missing pieces filled with `NA` in 1 rows [3].
data: Tabla de datos.
col: Nombre que va a recibir la nueva columna.
…: Conjunto de columnas que se van a unir.
datos <- data.frame(
nombre = c("Juan", "Luis", "Ana", "Maria"),
anno = c("1990", NA, NA, "1983"),
mes = c("02", "11", "09", NA),
dia = c("12", "01", NA, "23")
)
# Para evitar problemas utilizar las variables como tipo "character".
datos$anno <- as.character(datos$anno)
datos$mes <- as.character(datos$mes)
datos$dia <- as.character(datos$dia)
datosdatos <- data.frame(
id = c("A", "A", "A", "B", "B"),
pais = c("Costa Rica", "Colombia", "Honduras", "Colombia", "Honduras"),
dia1 = c(10, 30, 25, 10, 50),
dia2 = c(10, 15, 20, 10, 10),
dia3 = c(10, 50, 50, 40, 50),
dia4 = c(10, 40, 25, 50, 25)
)
datosLas primeras tres letras de cada columna indican si la columna indica nuevos o viejos casos de TB (en este caso todos son nuevos).
Las siguientes dos letras indican el tipo de caso: rel (indica recaídas), ep (TB extra pulmonar), sn (casos de TB que no pueden ser diagnosticados por medio de una citología pulmonar) y sp (casos de TB que pueden ser diagnosticados por medio de una citología pulmonar).
La sexta letra indica el género del paciente.
paises <- pivot_longer(
paises, cols = nuevo_sp_m.014:nuevo_rel_f.65,
names_to = "caso", values_to = "valor")
head(paises)paises <- separate(
paises, sep = "_", col = "caso",
into = c("es.nuevo", "tipo.caso", "genero.edad"))
head(paises)paises <- separate(
paises, sep = "\\.", # Para separar por punto se deben agregar 2 backslash (\\)
col = "genero.edad", into = c("genero", "edad"))
head(paises)paises <- mutate(
rowwise(paises), # rowwise permite aplicar funciones como sum o mean sobre la fila.
casos = sum(sp, sn, ep, rel, na.rm = T)
)
paises <- ungroup(paises) # Luego de aplicar rowwise es importante aplicar esta función para separar los grupos.
head(paises)paises <- mutate(
paises, genero = as.factor(genero),
edad = factor(edad, ordered = T))
head(paises)paises <- pivot_longer(paises, cols = nuevo_sp_m.014:nuevo_rel_f.65, names_to = "caso", values_to = "valor")
paises <- separate(paises, sep = "_", col = "caso", into = c("es.nuevo", "tipo.caso", "genero.edad"))
paises <- separate(paises, sep = "\\.", col = "genero.edad", into = c("genero", "edad"))
paises <- na.omit(paises)
paises <- pivot_wider(paises, names_from = tipo.caso, values_from = valor)
paises <- mutate(rowwise(paises), casos = sum(sp, sn, ep, rel, na.rm = T))
paises <- ungroup(paises)
paises <- select(paises, iso3, anno, genero, edad, casos)
paises <- mutate(paises, genero = as.factor(genero), edad = factor(edad, ordered = T))paises <- paises %>%
pivot_longer(cols = nuevo_sp_m.014:nuevo_rel_f.65, names_to = "caso", values_to = "valor") %>%
separate(sep = "_", col = "caso", into = c("es.nuevo", "tipo.caso", "genero.edad")) %>%
separate(sep = "\\.", col = "genero.edad", into = c("genero", "edad")) %>%
na.omit() %>% pivot_wider(names_from = tipo.caso, values_from = valor) %>%
rowwise() %>% mutate(casos = sum(sp, sn, ep, rel, na.rm = T)) %>% ungroup() %>%
select(iso3, anno, genero, edad, casos) %>%
mutate(genero = as.factor(genero), edad = factor(edad, ordered = T))library(ggplot2)
ggplot(res, aes(x = levels(edad), y = total.casos, fill = edad)) +
geom_bar(stat = "identity") + theme(legend.position = "none")library(ggplot2)
ggplot(res, aes(x = anno, y = total.casos)) +
geom_line(aes(color = iso3, linetype = iso3))library(FactoMineR)
library(factoextra)
modelo <- PCA(res, scale.unit = T, graph = F)
fviz_pca_ind(modelo)